/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package adbus.models;

import java.util.LinkedList;
import javax.swing.table.AbstractTableModel;

/**
 *
 * @author Kasia
 */
/**główna klasa KampaniaTable*/
public class KampaniaTable extends Table {
    protected Kampania campanign = new Kampania();
    protected LinkedList<Kampania> campanignList = null;
    /**metoda ładująca kampanie do listy kampanii*/
    public void zaladuj() {
        campanignList = campanign.pobierz();
        fireTableDataChanged();
    }
    /**konstruktor klasy KampaniaTable*/
    public KampaniaTable() {
        super();
        zaladuj();
    }
    /**metoda zwracająca długość listy kampanii*/
    public int getRowCount() {
        return campanignList.size();
    }
    @Override
    /**metoda wspomagająca wyświetlanie nazw kolumn*/
    public String getColumnName(int index) {
        switch(index) {
            case 0: return "ID";
            case 1: return "Klient";
            case 2: return "Nazwa";
            case 3: return "Opis";
            case 4: return "Data rozpoczęcia";
            case 5: return "Data zakończenia";
            case 6: return "Data Dodania";
            default: return "";
        }
    }
    /**metoda zwracająca liczbę kolumn wyświtlanej tabeli*/
    public int getColumnCount() {
        return 7;
    }
    /**metoda zwracająca dane z wybranego wiersza*/
    public Object getValueAt(int rowIndex, int columnIndex) {
        Kampania k = campanignList.get(rowIndex);
        switch(columnIndex) {
            case 0: return k.id_kampania;
            case 1: return k.klient;
            case 2: return k.nazwa;
            case 3: return k.opis;
            case 4: return k.data_rozpoczecia;
            case 5: return k.data_zakonczenia;
            case 6: return k.data_dodania;
            default: return "";
        }
    }

    public void delete(int i) {
        Kampania k = campanignList.get(i);
        campanignList.remove(i);
        k.delete();
        fireTableDataChanged();
    }
    /**metoda ustawijąca filtrowanie kampanii wg klienta*/
    public void setClientFilter(Klient klient) {

            campanign.setClientFilter(klient);

    }

    /**metoda ustawijąca filtrowanie kampanii wg przewoźnika*/
    public void setCarrierFilter(Przewoznik przewoznik) {
        campanign.setCarrierFilter(przewoznik);
    }
    /**metoda ustawijąca filtrowanie kampanii wg linii*/
    public void setLineFilter(Linia linia) {
        campanign.setLineFilter(linia);
    }
    /**metoda ustawijąca filtrowanie kampanii wg daty*/
    public void setDateFilter(String text, String text0, String text1, String text2) {
        campanign.setDateFilter(text,text0,text1,text2);
    }
    @Override
    /**metoda resetująca wszystkie filtry dla kampanii*/
    public void resetFilters() {
        campanign.resetFilters();
        zaladuj();
    }
}
